Ce este HTTP/3

Giteqa

HTTP/3 este următorul protocol pentru rețea prin Internet și este destinat să înlocuiască parțial HTTP/1 și HTTP/2. Cu o lună înainte de următoarea reuniune a grupului de lucru QUIC de la Zurich în februarie, ar putea fi util să se analizeze ceea ce promite HTTP/3 și cum arată suportul său actual client/server.

HTTP/3 promite să facă conexiunile la internet mai rapide, mai fiabile și mai sigure. Născut ca „HTTP peste QUIC”, o încercare de a adapta protocolul HTTP pentru a rula pe lângă propriul protocol de strat de transport Google, QUIC, a fost propusă ulterior ca standard IETF și este în prezent un proiect de internet. În octombrie 2018, co-președintele grupului de lucru IETF HTTP și QUIC, Mark Nottingham, a propus redenumirea HTTP peste QUIC în HTTP/3 pentru a-i clarifica adevărata natură și independența față de QUIC.

Ce este QUIC

QUIC este un element cheie al HTTP/3, deoarece oferă fundamentul funcționalității sale de bază. Construit pe partea de sus a UDP, QUIC încearcă să abordeze problemele majore întâmpinate cu TCP, cum ar fi latența setării conexiunii și pierderea pachetelor multithreading. Problema de latență a TCP provine din cerințele algoritmului său de control al congestiei, care necesită un început lent pentru a estima cantitatea de trafic care poate fi trimisă înainte de apariția congestiei. În HTTP/1.0, acest lucru este agravat de faptul că fiecărui schimb de cerere/răspuns TCP i se atribuie o nouă conexiune, care atrage o penalizare de pornire lentă.

De atunci, încercarea de a ocoli pornirea lentă a TCP a fost în centrul eforturilor consistente de îmbunătățire a protocolului HTTP.

HTTP/1.1 a introdus conexiuni de „backing”, permițând schimbarea mai multor schimburi cerere-răspuns pe aceeași conexiune TCP, nefiind necesară o nouă fază de stabilire a conexiunii pentru fiecare cerere. Cu toate acestea, acceptarea conexiunilor HTTP/1.1 nu acceptă trimiterea mai multor cereri în același timp, provocând din nou blocaje din cauza complexității tot mai mari a paginilor web.

Despre HTTP/2

HTTP/2, un derivat al protocolului SPDY acum învechit, a introdus conceptul de fluxuri de primă clasă încorporate în aceeași conexiune. Acest lucru a permis multiplexarea simultană a cererilor și a răspunsurilor, dar cu un dezavantaj grav: atunci când pierde pachetul crește, performanța HTTP/2 se degradează datorită modului în care TCP gestionează retransmisiunile pachetelor (blocarea HOL). Impactul poate fi mare, deoarece toate firele utilizează aceeași conexiune. Când pierderea de pachete depășește un prag dat, în mod paradoxal, mai multe conexiuni HTTP/1 sunt mai eficiente decât HTTP/2.

După cum sa menționat, QUIC are fluxuri de primă clasă care rezolvă problema latenței de pornire lentă a conexiunii, așa cum se întâmplă în HTTP/2. În plus, le procesează separat unele de altele, ceea ce rezolvă problemele de performanță din cauza pierderii de pachete. Utilizarea QUIC ca protocol de strat de transport este cea mai mare îmbunătățire față de HTTP/3 față de HTTP/2. Deoarece QUIC a implementat inițial o serie de caracteristici legate de flux care făceau parte integrantă din specificația HTTP/2, acestea ar fi putut fi eliminate din HTTP/3. În plus, implementarea QUIC a fost necesară pentru a crea o nouă schemă de compresie a antetului HTTP, QPACK, deoarece compresia de antet HTTP/2 HPACK depinde în mare măsură de ordinea în care TCP livrează pachete către punctele finale.

De câțiva ani, Google folosește QUIC pentru propriile sale servicii, inclusiv căutare, YouTube și altele, și îl acceptă și în Chrome. Pentru o vreme, Chrome a fost singura modalitate de a utiliza QUIC atunci când interacționează cu serviciile Google care îl susțin. Mozilla a adăugat recent suport pentru HTTP/3 în Firefox 72, dar este încă experimental. Instrumentul pentru linia de comandă curl a adăugat, de asemenea, suport pentru HTTP/3 în versiunea 7.66.0, precum și multe caracteristici suplimentare. Pe partea de server, HTTP/3 este acceptat de LiteSpeed ​​și Nginx.

Cloudflare și HTTP/3

Pe partea de cloud, pe lângă Google, Cloudflare a anunțat acum câteva luni că va activa provizoriu HTTP/3 pentru unii dintre clienții săi. Cloudflare este, de asemenea, compania din spatele Quiche, o bibliotecă open source Rust pentru implementarea clienților și serverelor HTTP/3.

După cum sa menționat, HTTP/3 este încă definit de IETF și nu a fost încă stabilită o dată oficială de lansare. Între timp, HTTP/3 crește la nivel global, cu aproape 300.000 de servicii la nivel mondial care îl folosesc. Google este în continuare organizația de vârf care introduce HTTP/3, dar alte câteva au o mică parte. InfoQ va continua să comunice HTTP/3 în timp util pentru a ne informa publicul despre evoluția internetului.